<?php
namespace Devcopilot\Models;

use Devcopilot\Models\BaseModel;

class Application extends BaseModel
{
    protected $table = 'applications';
    protected $fillable = [
        'name',
        'description',
        'requirement_id'
    ];

    public function __construct($attributes = [])
    {
        parent::__construct($attributes);
    }

    public function getCount(string $type) {
        $query = $this->newQuery();
        if($type === 'active') {
            // 开发中的应用
            $query->whereBySql('req_status IN (?,?)', [2,4]);
        }
        return $query->count();
    }

    // 获取应用关联的需求
    public function requirement()
    {
        // 实际开发中会查询数据库获取关联需求
        // return Requirement::find($this->requirement_id);
        return null;
    }

    // 获取应用的所有版本
    public function versions()
    {
        // 实际开发中会查询数据库获取应用的所有版本
        // return Version::where('application_id', $this->id)->get();
        return [];
    }

    // 获取应用的所有功能
    public function features()
    {
        // 实际开发中会查询数据库获取应用的所有功能
        // return Feature::where('application_id', $this->id)->get();
        return [];
    }

    // 获取应用的所有任务
    public function tasks()
    {
        // 实际开发中会查询数据库获取应用的所有任务
        // return Task::where('application_id', $this->id)->get();
        return [];
    }

    // 获取应用的最新版本
    public function latestVersion()
    {
        // 实际开发中会查询数据库获取应用的最新版本
        // return Version::where('application_id', $this->id)->orderBy('create_time', 'desc')->first();
        return null;
    }
}